﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;

namespace Bricks.Site.Models
{
    public class SectionSalaryView
    {
        [Required]
        public Guid ID { get; set; }

        [Required]
        [StringLength(255)]
        [Description("流程编码")]
        public string FlowCode { get; set; }

        //所属项目ID
        public Guid ProjectID { get; set; }

        //合同类型：数据字典里面定义
        public string ContractType { get; set; }

        //所属标段ID
        public Guid ContractID { get; set; }

        //年
        public string Year { get; set; }

        //月
        public string Month { get; set; }

        //附件
        public string Attachment { get; set; }

        public DateTime RequestDate { get; set; }

        //申请人
        public string RequestPerson { get; set; }

        //流转状态：
        //0：申请；1：流转；2：结束；3：终止；4：回退
        [Required]
        [StringLength(1)]
        public string HandleState { get; set; }

        public string AssociatedNodeCode { get; set; }

        public string LastUpdateUserDepartment { get; set; }

        public string LastUpdateUser { get; set; }

        public DateTime? LastUpdateTime { get; set; }

        //保存状态，为了判断是否能回退，只要点了保存按钮就更新这个字段为“1”
        public string SaveState { get; set; }

        //存放清单列表，因为清单数据量过大的时候，用传参的方式会进不去后台方法
        public string SectionSalaryDetailListJson { get; set; }

        //来源类型
        //1.过程管理列表新增按钮；
        //2.待办列表；
        //3.已办列表；
        //4.流程消息
        public string SourceType { get; set; }

        //处理类型
        //SourceType=0的时候，有普通单据（1）、申请单据（2）
        //SourceType=1和4的时候，为空
        //SourceType=2的时候，有待办（1）、传阅（2）
        //SourceType=3的时候，有已办（1）、回退（2）、终止（3）、传阅（4）、已阅（5）、催办（6）
        public string ProcessType { get; set; }

        //关联的记录ID
        //只有SourceType=4的时候才有值，值为消息的ID
        public string SourceID { get; set; }

        public string ProcessdOrCirculatedNodeCode { get; set; }

        public string ProcessdOrCirculatedUserDepartment { get; set; }



        //用于主界面显示

        //标段名称
        public string ContractName { get; set; }

        //一月工资
        public decimal? JanuarySalary { get; set; }

        //二月工资
        public decimal? FebruarySalary { get; set; }

        //三月工资
        public decimal? MarchSalary { get; set; }

        //四月工资
        public decimal? AprilSalary { get; set; }

        //五月工资
        public decimal? MaySalary { get; set; }

        //六月工资
        public decimal? JuneSalary { get; set; }

        //七月工资
        public decimal? JulySalary { get; set; }

        //八月工资
        public decimal? AugustSalary { get; set; }

        //九月工资
        public decimal? SeptemberSalary { get; set; }

        //十月工资
        public decimal? OctoberSalary { get; set; }

        //十一月工资
        public decimal? NovemberSalary { get; set; }

        //十二月工资
        public decimal? DecemberSalary { get; set; }
    }
}
